#ifndef __MSQLDATABASE_H__
#define __MSQLDATABASE_H__
#include <mysql/mysql.h>
#include <iostream>
#include "stdDataBase.h"
#include <chrono>

using namespace std;

class mysqlDataBase : public StdDataBase
{
public:
    mysqlDataBase(const string & host, const string & user, const string & passwd);
    ~mysqlDataBase();

    /* 连接数据库 override防止函数名出现错误*/
    bool connectDB(const string & connStr) override;

    /* 执行sql语句(exec) */
    bool executeSql(const string & sql) override;

    /* 制定Sql查询语句（select）*/
    struct QueryResult querySql(const string & sql) override;

    /* 关闭数据库连接 */
    void close();

    /* 刷新时间戳 */
    void refreshAliveTime();

    /* 获取数据库句柄的存活时间 */
    long getAliveTime();

private:
    /* 数据库句柄 */
    MYSQL * m_conn;     // mysql_init()的返回值
    string m_host;
    string m_user;
    string m_passwd;
    chrono::_V2::steady_clock::time_point m_backCurrentTime;

};





#endif